HTML 체크박스 사용법
작성일 : 2025.03.12
웹 폼을 만들 때 체크박스는 사용자가 여러 옵션 중에서 선택할 수 있게 해주는 필수적인 요소입니다. 그런데 체크박스를 초기화하는 방법, 특히 checked 속성의 올바른 사용법에 대해 혼란이 있을 수 있습니다. 이 글에서는 HTML 체크박스를 올바르게 사용하는 방법과 checked="on" 및 checked="off"와 같은 접근법의 문제점에 대해 자세히 알아보겠습니다.
체크박스 기본 사용법
HTML에서 체크박스는 <input type="checkbox"> 태그를 사용하여 만듭니다. 기본적인 체크박스 구문은 다음과 같습니다:
<input type="checkbox" name="option" value="value">
체크박스의 주요 속성:
name: 폼 제출 시 서버로 전송되는 데이터의 이름value: 체크박스가 선택되었을 때 서버로 전송되는 값checked: 페이지 로드 시 체크박스가 선택된 상태로 표시될지 여부
checked 속성의 올바른 사용법
HTML 명세에 따르면, checked는 **불리언 속성(boolean attribute)**입니다. 불리언 속성은 특별한 방식으로 작동합니다:
- 속성이 존재하면 true (켜짐)
- 속성이 없으면 false (꺼짐)
올바른 checked 속성 사용법:
<!-- 체크된 상태 (올바른 방법) -->
<input type="checkbox" name="option1" value="value1" checked>
<!-- HTML5에서는 이것도 유효함 -->
<input type="checkbox" name="option2" value="value2" checked="checked">
<!-- 체크되지 않은 상태 (올바른 방법) -->
<input type="checkbox" name="option3" value="value3">
checked="on" vs checked="off" 오해
다음과 같은 코드를 볼 수 있습니다:
<input type="checkbox" name="check" value="item1" checked="on">
그리고 일부 개발자들은 다음과 같이 체크박스를 해제하려고 시도합니다:
<input type="checkbox" name="check" value="item1" checked="off">
warning
이것은 올바른 HTML 사용법이 아닙니다! 왜 그럴까요?
- HTML 명세에서
checked는 불리언 속성입니다. - 불리언 속성은 존재 여부만이 중요합니다.
checked="on",checked="off",checked="anything"모두 동일하게 처리됩니다 - 속성이 존재하므로 체크박스는 선택된 상태가 됩니다.
따라서 checked="off"로 설정해도 체크박스는 여전히 선택된 상태로 표시됩니다!
올바른 체크박스 초기화 방법
체크박스를 초기화하는 올바른 방법:
<!-- 체크된 상태로 초기화 -->
<input type="checkbox" name="subscribe" value="yes" checked>
<!-- 체크되지 않은 상태로 초기화 -->
<input type="checkbox" name="promotions" value="yes">
체크박스를 체크되지 않은 상태로 만들려면 checked 속성을 완전히 제거해야 합니다. checked="false" 또는 checked="off"로 설정하는 것은 작동하지 않습니다.